/**
 * 发送get请求
 * @param {string} url 请求地址
 * @param {object} params 请求参数
 * @param {string|undefined} type 返回的接口数据类型
 * @param {object} headers 自定义请求头
 * @returns Promise
 */
 function get(url, params, type, headers={})
 {
     // 过滤数据
     let temp = []
     for (let key in params)
     {
         temp.push(`${key}=${params[key]}`)
     }
     let paramsFilter = temp.join('&')
 
     // 返回promise对象
     const p = new Promise((resolve, reject) => {
         const xhr = new XMLHttpRequest 
         xhr.onreadystatechange = () => {
             if (xhr.readyState === 4)
             {
                 if (xhr.status === 200)
                 {
                     let res = xhr.responseText
                     if (type==='json') res = JSON.parse(res)
                     resolve(res) 
                 } else {
                     reject(xhr.status) 
                 }
             }
         }
         xhr.open('get', `${url}?${paramsFilter}`)
         for (let key in headers) 
         {
             xhr.setRequestHeader(key, headers[key])
         }
         xhr.send(null)
     })
     
     return p
 }
 
 
 
 // 开启loading
 // get(url, params, type, headers={})
 // .then()
 // .catch()
 // .finally(() => 隐藏loading)
 
 
 /**
  * 发送post请求
  * @param {string} url 请求地址
  * @param {object} params 请求参数
  * @param {string|undefined} type 返回的接口数据类型
  * @param {object} headers 自定义请求头
  * @returns Promise
  */
  function post(url, params, type, headers={})
  {
      // 过滤数据
      let temp = []
      for (let key in params)
      {
          temp.push(`${key}=${params[key]}`)
      }
      let paramsFilter = temp.join('&')
  
      // 返回promise对象
      const p = new Promise((resolve, reject) => {
          const xhr = new XMLHttpRequest 
          xhr.onreadystatechange = () => {
              if (xhr.readyState === 4)
              {
                  if (xhr.status === 200)
                  {
                      let res = xhr.responseText
                      if (type==='json') res = JSON.parse(res)
                      resolve(res) 
                  } else {
                      reject(xhr.status) 
                  }
              }
          }
          xhr.open('post', url)
          xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')
          for (let key in headers) 
          {
              xhr.setRequestHeader(key, headers[key])
          }
          xhr.send(paramsFilter)
      })
      
      return p
  }